用python的xlwings模块实现excel工作表批量隐藏和取消隐藏

您所在的位置:网站首页 pandas 过滤隐藏行 用python的xlwings模块实现excel工作表批量隐藏和取消隐藏

用python的xlwings模块实现excel工作表批量隐藏和取消隐藏

2024-07-15 18:18| 来源: 网络整理| 查看: 265

学习python后,一开始用openpyxl操作excel,最近一直在使用研究xlwings这个功能强大的excel操作库,一开始用就爱不释手。 操作excel一直有一个痛点,那就是excel工作表的隐藏和取消隐藏。如果要隐藏的工作表很少,那就没必要用程序了。可是你可以想象一下,如果要隐藏和取消隐藏的工作表有5个以上,而且每个月,每周,甚至是每天都要重复这样的操作,会是怎样一个机械劳动的痛苦过程。 我一开始想用xlwings调用vba的方法实现批量隐藏,网上查了一些资料看得头大。后来想,如果还有用vba的方法,还学个毛的python,还是尽量少用混合开发(本人看法)。 然后,我就开始满网搜索python批量实现隐藏工作表的方法,重点是搜索xlwings有没有这种方法,结果硬是没搜到了。 难道号称强大的xlwings竟然没有批量隐藏sheet的方法吗?这对学习的热情是个打击。 当我回过头去看vba实现sheet批量隐藏的代码时候,忽然灵光一闪,把vba的代码在sublime中开始测试。 第一遍,没对象 第二遍,没对象 ………… 忽然,我成功了。 废话了这么多,开始上代码! 先看一眼要操作的工作簿 在这里插入图片描述 xlwings隐藏和取消隐藏工作表

import xlwings as xw def hid_sheet(): wb=xw.books['隐藏测试.xlsx'] for sheet in wb.sheets: #wb.sheets工作簿的所有工作表 #把名字不是Sheet1的工作表都隐藏 if sheet.name!='Sheet1': sheet.api.visible=False def unhid_sheet(): wb=xw.books['隐藏测试.xlsx'] for sheet in wb.sheets: sheet.api.visible=True if __name__ == '__main__': #hid_sheet() unhid_sheet()

可以把隐藏和取消隐藏的代码分别封装,来回梭哈。 ———————————————我是分割线————————————————————————— 总结: 该方法(应更)是xlwings调用win32com的api 主要的方法就是sheet.api.visible=True/False 需要的朋友拿去,代码还有很改进空间,比如用app方式打开工作簿,甚至创建个类。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3